Infiniband (IB) is a high speed interconnect with fabrics consisting of switches and end nodes. Most end nodes in an Infiniband system have two ports. Packets are passed from switch to switch to reach the ports of a destination node. Each of these ports can be connected to a different switch to ensure independent redundant paths.
Within the Infiniband architecture each node is assigned a globally unique identifier (GUID). These GUIDs operate similar to Ethernet MACs and allow for accurate, efficient packet routing between nodes.
To ensure independent paths for the packets the switch connected to each port must route through a different switch for each destination port of the destination node. One solution is to forward all packets destined for the same port on the destination node through the same switch. The problem with this solution is if there is nothing connected to one of the ports of the destination node, then is it possible that only one switch will ever be forwarded though which makes for poor utilization of the network as well as a single point of failure for the system, i.e. the one switch all packets are routed though.
Thus what is needed is a method of routing packets over redundant, independent paths that do not suffer from the possibility of utilizing only one switch for the forwarding of packets.